]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Hide summary box pointer without animating if it is empty
authorMarina Zhurakhinskaya <marinaz@redhat.com>
Sat, 26 Mar 2011 07:25:25 +0000 (03:25 -0400)
committerMarina Zhurakhinskaya <marinaz@redhat.com>
Tue, 29 Mar 2011 02:40:38 +0000 (22:40 -0400)
This ensures that we don't show a small black blob fading away
when the user clicks on the notification and it is removed.

Set HIDING state right away in _hideSummaryBoxPointer() so that
it is only called once. Update this._pointerInTray when the tray
is unlocked, so that we are not dependent on escapeTray() being
triggered by 'done-displaying-content' signal.

https://bugzilla.gnome.org/show_bug.cgi?id=645697

js/ui/messageTray.js

index fa965262cc1fbb415d46454e05ca8eda8355d0a5..64a4fb3229db5c7a8eaf3a68693b51e96b690426 100644 (file)
@@ -1417,6 +1417,7 @@ MessageTray.prototype = {
         if (!this._locked)
             return;
         this._locked = false;
+        this._pointerInTray = this.actor.hover && !this._summaryBoxPointer.bin.hover;
         this._updateState();
     },
 
@@ -2106,13 +2107,18 @@ MessageTray.prototype = {
     },
 
     _hideSummaryBoxPointer: function() {
+        this._summaryBoxPointerState = State.HIDING;
         // Unset this._clickedSummaryItem if we are no longer showing the summary
         if (this._summaryState != State.SHOWN)
             this._unsetClickedSummaryItem();
 
         this._focusGrabber.ungrabFocus();
-        this._summaryBoxPointerState = State.HIDING;
-        this._summaryBoxPointer.hide(true, Lang.bind(this, this._hideSummaryBoxPointerCompleted));
+        if (this._summaryBoxPointerItem.source.notifications.length == 0) {
+            this._summaryBoxPointer.actor.hide();
+            this._hideSummaryBoxPointerCompleted();
+        } else {
+            this._summaryBoxPointer.hide(true, Lang.bind(this, this._hideSummaryBoxPointerCompleted));
+        }
     },
 
     _hideSummaryBoxPointerCompleted: function() {